package com.ia2014.tp.portal2.vo;


import java.text.SimpleDateFormat;
import java.util.Date;

@SuppressWarnings("serial")
public class ArticuloVO implements AbstractVO{

	/**
     * Formato de la fecha
     */
    private static final String FORMATO_FECHA = "yyyy/MM/dd";

    /**
     * Formateador de la fecha
     */
    private static SimpleDateFormat fechaFormater = new SimpleDateFormat(FORMATO_FECHA);
	
	private Integer id;
	private Integer idModulo;
	private Integer codigo;
	private String categoria;
	private String nombre;
	private String descripcion;
	private String marca;
	private Double precio;
	private String fotoURL;
	private String origen;
	private Date fecha;
	private Integer ranking; //bestsellers
	
	public ArticuloVO(){
		this.nombre = "";
		this.descripcion = "";
		this.marca="";
		this.origen = "";
	}
	
	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}
	
	public Integer getIdModulo() {
		return idModulo;
	}

	public void setIdModulo(Integer idModulo) {
		this.idModulo = idModulo;
	}

	public Integer getCodigo() {
		return codigo;
	}

	public void setCodigo(Integer codigo) {
		this.codigo = codigo;
	}
	
	public void setCategoria(String categoria) {
		this.categoria = categoria;
	}
	
	public String getCategoria(){
		return this.categoria;
	}
	
	
	public String getNombre() {
		return nombre;
	}
	
	public void setNombre(String nombre) {
		this.nombre = nombre == null ? "": nombre;
	}

	public String getDescripcion() {
		return descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion == null ? "": descripcion;
	}

	public String getMarca() {
		return marca;
	}

	public void setMarca(String marca) {
		this.marca = marca == null ? "": marca;
	}

	public Double getPrecio() {
		return precio;
	}

	public void setPrecio(Double precio) {
		this.precio = precio;
	}

	public String getOrigen() {		
		return origen;
	}

	public void setOrigen(String origen) {
		this.origen = origen == null ? "": origen;
	}

	public String getFotoURL() {
		if(fotoURL==null || fotoURL.isEmpty()) 
			return "resources/img/nopic.png";
		else 
			return fotoURL;
	}

	public void setFotoURL(String fotoURL) {
		this.fotoURL = fotoURL;
	}

	public Date getFecha() {
		return fecha;
	}

	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}
	
	public String getFechaString() {
		if (this.getFecha() != null) {
            return fechaFormater.format(this.getFecha());
        } else {
            return "";
        }
	}

	public Integer getRanking() {
		return ranking;
	}

	public void setRanking(Integer ranking) {
		this.ranking = ranking;
	}
	
	//TODO: implementar esta logica para mostrar detalles de todos los articulos
	public ArticuloElectrodomesticoVO getArticuloElectrodomesticoVO(){
		if(this instanceof ArticuloElectrodomesticoVO) return (ArticuloElectrodomesticoVO)this;
		else return null;
	}
	
	public ArticuloInfantilVO getArticuloInfantilVO(){
		if(this instanceof ArticuloInfantilVO) return (ArticuloInfantilVO)this;
		else return null;
	}
	
	public ArticuloModaVO getArticuloModaVO(){
		if(this instanceof ArticuloModaVO) return (ArticuloModaVO)this;
		else return null;
	}

	public ArticuloMuebleVO getArticuloMuebleVO(){
		if(this instanceof ArticuloMuebleVO) return (ArticuloMuebleVO)this;
		else return null;
	}
}
